package com.jfireframework.sql.parse.lexer.token;

import java.util.HashMap;
import java.util.Map;

public enum DefaultKeyWord implements KeyWord
{
	SELECT, //
	DELETE, //
	INSERT, //
	UPDATE, //
	CREATE, //
	ALTER, //
	DROP, //
	TRUNCATE, //
	REPLACE, //
	DECLARE, //
	GRANT, //
	REVOKE, //
	AS, //
	DISTINCT, //
	MAX, //
	MIN, //
	SUM, //
	AVG, //
	COUNT, //
	FROM, //
	WHERE, //
	ORDER, //
	ASC, //
	DESC, //
	GROUP, //
	BY, //
	HAVING, //
	INTO, //
	VALUES, //
	COLUMN, //
	TABLE, //
	TABLESPACE, //
	SET, //
	PRIMARY, //
	KEY, //
	INDEX, //
	CONSTRAINT, //
	CHECK, //
	UNIQUE, //
	FOREIGN, //
	REFERENCES, //
	INNER, //
	LEFT, //
	RIGHT, //
	FULL, //
	OUTER, //
	CROSS, //
	JOIN, //
	STRAIGHT_JOIN, //
	APPLY, //
	ON, //
	IS, //
	IN, //
	BETWEEN, //
	LIKE, //
	AND, //
	OR, //
	XOR, //
	NULL, //
	NOT, //
	FOR, //
	ALL, //
	UNION, //
	CAST, //
	USE, //
	USING, //
	TO, //
	CASE, //
	WHEN, //
	THEN, //
	ELSE, //
	END, //
	EXISTS, //
	NEW, //
	ESCAPE, //
	INTERVAL, //
	LOCK, //
	SOME, //
	ANY, //
	WHILE, //
	DO, //
	LEAVE, //
	ITERATE, //
	REPEAT, //
	UNTIL, //
	OPEN, //
	CLOSE, //
	OUT, //
	INOUT, //
	OVER, //
	FETCH, //
	WITH, //
	CURSOR, //
	ADVISE, //
	SIBLINGS, //
	LOOP, //
	ENABLE, //
	DISABLE, //
	EXPLAIN, //
	SCHEMA, //
	DATABASE, //
	VIEW, //
	SEQUENCE, //
	TRIGGER, //
	PROCEDURE, //
	FUNCTION, //
	DEFAULT, //
	EXCEPT, //
	INTERSECT, //
	MINUS, //
	PASSWORD, //
	CONNECT_BY_ROOT, //
	IF, //
	GLOBAL, //
	LOCAL, //
	MATCHED, //
	MERGE,//
	TEMPORARY;
	
	private static Map<String, DefaultKeyWord> defaultKeeyWords = new HashMap<String, DefaultKeyWord>(128);
	
	static
	{
		for (DefaultKeyWord each : DefaultKeyWord.values())
		{
			defaultKeeyWords.put(each.name().toLowerCase(), each);
		}
	}
	
	public static DefaultKeyWord getDefaultKeyWord(String literals)
	{
		return defaultKeeyWords.get(literals.toLowerCase());
	}
}
